/* mv.h
 *  
 *Matrix-Vector multiplication include file
 *  
 *Basile Clout, September 2007
 *  
*/


#ifndef MVH
#define MVH
#include <sys/time.h>

/* Timing macros */
#define CLOCK(c) gettimeofday(&c,(struct timezone *)NULL)
#define CLOCK_DIFF(c1,c2) ((double)(c1.tv_sec-c2.tv_sec)+(double)(c1.tv_usec-c2.tv_usec)/1e+6)

/* In 0 is false, other values are true */
#define PRINT 1			/* Print result vector? */
#define TIME 1			/* Print time? */

/* Declare mv functions */

/* Matrix-vector multiplication for floats numbers (double)
 m=number of rows in the matrix mat
 n=number of columns in matrix mat AND length of vector V (=number of rows)
 res=result matrix
 */
int mvd(const double **mat, const double *vec, double *res, const int m, const int n);

#endif
